Integrant入門(2) - ライフサイクルの管理
前回(Integrant入門(1) - Integrantの基本)はIntegrantの語彙について説明を行い、設定マップからコンポーネントが作られるところまでを書きました。今回はもう少し進めて、ライフサイクルの管理について説明していきたいと思います。
コンポーネントの破棄
前回のコンポーネントは主に数値を取り扱っただけだったので、お行儀よく破棄する必要もありませんでしたが通常のアプリケーションにおいて、ライフサイクルを管理したいようなものを扱う場合、お行儀よく破棄したいコンポーネントが出てくるケースがあります。
例えば、サーバーやデータベースのコネクションなどですね。近頃ではアプリケーションサーバーがアプリケーション本体に組み込まれていることも多く、サーバーのライフサイクルはアプリケーションの中で面倒を見ないといけないケースが多いです。
そんなわけで、サーバーのコンポーネントを簡単に書いてみましょう。今回はJettyを利用します。
code:project.clj
ring/ring-core "1.6.3"
ring/ring-jetty-adapter "1.6.3"
code:clojure
(require 'integrant.core :as ig)
(require 'ring.adapter.jetty :as jetty)
#wip